
// Create a "target" shape as a Complex Connected Shape
// Using Bezier Curves
// note - these are not perfect circles, but they are close.

Graph equalscales, height=4,width=4,noaxes,nogrid
hcenter=60:vcenter=40
ctl=.552194122531950379  // gives pretty good circle

shape beginpath
size=100
while size > 10
rc = right_circle (size)
shape closefigure
size = size - 10
if size <= 10 then break
rc = left_circle (size)
shape closefigure
size = size - 10
wend
shape endpath
shape filltype=solid,fillcolor=(255,0,0),linecolor=(0,0,0)
shape strokefill
end

def right_circle(size)=gosub 2000
2000 
shape linestart = (hcenter, vcenter+size)
shape ctlpt1    = (hcenter + size*ctl, vcenter+size)
shape ctlpt2    = (hcenter+size, vcenter+size*ctl)
shape lineend   = (hcenter+size, vcenter)
shape bezier
shape linestart = (hcenter+size, vcenter)
shape ctlpt1    = (hcenter+size, vcenter-size*ctl)
shape ctlpt2    = (hcenter+size*ctl, vcenter-size)
shape lineend   = (hcenter, vcenter-size)
shape bezier
shape linestart = (hcenter, vcenter-size)
shape ctlpt1    = (hcenter - size*ctl, vcenter-size)
shape ctlpt2    = (hcenter-size, vcenter-size*ctl)
shape lineend   = (hcenter-size, vcenter)
shape bezier
shape linestart = (hcenter-size, vcenter)
shape ctlpt1    = (hcenter-size, vcenter+size*ctl)
shape ctlpt2    = (hcenter-size*ctl, vcenter+size)
shape lineend   = (hcenter, vcenter+size)
shape bezier
return

def left_circle (size) = gosub 3000
3000
shape linestart = (hcenter, vcenter+size)
shape ctlpt1    = (hcenter-size*ctl, vcenter+size)
shape ctlpt2    = (hcenter-size, vcenter+size*ctl)
shape lineend   = (hcenter-size, vcenter)
shape bezier
shape linestart = (hcenter-size, vcenter)
shape ctlpt1    = (hcenter-size, vcenter-size*ctl)
shape ctlpt2    = (hcenter-size*ctl, vcenter-size)
shape lineend   = (hcenter, vcenter-size)
shape bezier
shape linestart = (hcenter, vcenter-size)
shape ctlpt1    = (hcenter+size*ctl, vcenter-size)
shape ctlpt2    = (hcenter+size, vcenter-size*ctl)
shape lineend   = (hcenter+size, vcenter)
shape bezier
shape linestart = (hcenter+size, vcenter)
shape ctlpt1    = (hcenter+size, vcenter+size*ctl)
shape ctlpt2    = (hcenter+size*ctl, vcenter+size)
shape lineend   = (hcenter, vcenter+size)
shape bezier
return
